package com.mrjy.maintain.dao;

import java.util.List;

import com.mrjy.common.entity.UserMemberInfo;


public interface IUserMemberInfoDao {
	//插入
	int insert(UserMemberInfo userMemberInfo);
	
	/**
	 * 根据用户查询用户年级学科开通
	 * @param userMemberInfo   userId/gradeId
	 * @return
	 */
	List<UserMemberInfo> queryBySelected(UserMemberInfo userMemberInfo);
	
	//分页查询用户年级学科开通
	List<UserMemberInfo> queryPageUserBalance(UserMemberInfo userMemberInfo);
	
	//根据id查询用户
	UserMemberInfo queryById(int id);
	
	//根据ID修改用户信息
	int updateById(UserMemberInfo userMemberInfo);
	
	//根据ID删除用户信息
	int deleteByIds(int[] ids);

	/**
	 * 检查会员到期状态
	 * @return
	 */
	public List<UserMemberInfo> getUserMemberExpired();
	/**
	 * 检查会员将要过期
	 * @param date 
	 * @return
	 */
	public List<UserMemberInfo> getUserBalanceWillExpire(int date);
	
	/**
	 * 检查当前用户是否拥有未添加年级的年级套餐
	 * @return
	 */
	public UserMemberInfo checkGradeState(UserMemberInfo userMemberInfo);
	
	/**
	 * 更新年级套餐中的年级
	 * @param userMemberInfo
	 * @return
	 */
	public int updateGrade(UserMemberInfo userMemberInfo);
	/**
	 * 批量修改过期会员标志并修改为临时状态
	 * @return
	 */
	public int checkUserMemberExpired();
	
	/**
	 * 修改会员临时状态修改2为失效标志0
	 * @return
	 */
	public int setUserMemberExpired();
	/**
	 * 根据用户id查询
	 * @param integer
	 * @return
	 */
	public UserMemberInfo selectByUserId(Integer integer);
	/**
	 * 根据用户id查询会员列表（兼容之前的表的1对多的关系）
	 * @param memberInfo
	 * @return
	 */
	public List<UserMemberInfo> selectListByUserId(UserMemberInfo memberInfo);
	/**
	 * 根据用户id查询是否为vip
	 * @param integer
	 * @return
	 */
	public UserMemberInfo selectIsVipByUserId(Integer userId);
}
